#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>

// 这里的计算平方只是假设，可以想象成是一个需要耗时1秒的复杂计算
int calc_sqr(int a)
{
    // sleep(1) 不会占用CPU，它会释放CPU资源让给其他程序使用
    sleep(1);
    return a * a;
}

// 对一个数组中的数分别求平方然后再汇总求和
int main(int argc, char const *argv[])
{
    int items[5] = {1, 2, 3, 4, 5};
    int sqrs[5];

    struct timeval start_t, end_t;

    // 获取开始时间
    gettimeofday(&start_t, NULL);

    // 计算items中每个数的平方，并存储到sqrs中
    for (int i = 0; i < 5; i++)
    {
        sqrs[i] = calc_sqr(items[i]);
    }

    gettimeofday(&end_t, NULL);
    // 输出计算耗时
    printf("time = %ld秒\n", end_t.tv_sec - start_t.tv_sec);

    // 累加所有的平方值
    int sum = 0;
    for (int i = 0; i < 5; i++)
    {
        sum += sqrs[i];
    }
    printf("sum = %d\n", sum);

    return 0;
}